package Z007InterfaceAndExtends.O08Final;

public class TestFinal {

    public static void main(String[] args) {
        Hero h = new Hero();
        h.useItem();

        final Hero h1 ;
        h1 = new Hero() ;
        //  h1 = new Hero() ;

        // final修饰引用
        // h1引用被修饰成final，表示该引用只有1次指向对象的机会

        final int num = 12;
        // num = 12;  // 被final修饰的 只能初始化 或者 引用一次


    }
}


class Hero{
    String name;   // 姓名
    float hp;      // 血量
    float armor;   // 护甲
    int moveSpeed; // 速度

    public static final int itemTotalNumber = 6 ;
    // 常量指的是可以公开，直接访问，不会变化的值
    // 比如 itemTotalNumber 物品栏的数量是6个


    public final void useItem(){
        System.out.println("hero use item");
    }

    public Hero(){
        System.out.println("");
    }

    public Hero(String name){
        System.out.println("Hero 一个参数的构造方法");
        this.name = name;
    }


}





final class Hero1{
    String name;   // 姓名
    float hp;      // 血量
    float armor;   // 护甲
    int moveSpeed; // 速度
}

// class Hero2 extends Hero1{}
// 当Hero被修饰成final的时候，表示Hero不能够被继承
// 其子类会出现编译错误

class Hero3 extends Hero{

    // public final void useItem(){} // 被final修饰无法重写

}

// lianxi:设计一个类SomeString,继承 String类。 能否继承？